package gci;

/**
 * 
 * 
 * @author Israel
 *
 */
public class Instruccion {
	
	 Operaciones operacion;
	 
	 private String operadorX;
	 private String operadorY;
	 private String resultado;   //no tiene porque ser un resultado; puede servir para diferenciar tipo operacion. en ese caso ***
	 private String resto;
	 
	 public Instruccion(Operaciones op, String X, String Y, String result, String rest){
		 operacion= op;
		 operadorX= X;
		 operadorY= Y;
		 resultado= result;
		 resto=rest;
	 }
	 
	 public boolean esEtiqueta(){
		 if (operacion == Operaciones.opetiq) return true;
		 else return false;
	 }
	 
	 public String toString(){
		 String aux;
		 if (operacion == Operaciones.opetiq) aux = ""; 
		 else if (operacion == Operaciones.opgoto) aux = "goto";
		 else aux=operacion.toString();
		 aux=aux+" ";
		 if (operadorX != null) aux += " "+(operadorX);
		 if (operadorY != null) aux += " "+(operadorY);
		 if (resultado != null) aux += " "+ resultado;
		 if (resto != null) aux += " "+resto; //imprime resultado solo si positivo ***
		 return aux;
	 };
	 
	 public String intToString(int i){
		 return Integer.toString(i);
	 };
	 
	 public Operaciones getOperacion(){
		 return operacion;
	 }
	
	public String getOperadorX() {
		return operadorX;
	}
	
	public String getOperadorY() {
		return operadorY;
	}
	
	public String getResultado() {
		return resultado;
	}
	
	public String getResto() {
		return resto;
	}
 
}
